home *** CD-ROM | disk | FTP | other *** search
- global enemyData, enemySO, maxEnemies, fallSpeed
-
- on initializeEnemies
- enemyData = []
- repeat with wEnemy = 1 to maxEnemies
- wSprite = enemySO + wEnemy
- add(enemyData, [0, 0, point(random(5800), 0), 0, [point(random(70) - 25, random(50) + 10)]])
- set the loc of sprite wSprite to point(-50, -50)
- end repeat
- end
-
- on addEnemy spawnType, spawnloc, spawnDrift
- validSlot = 0
- repeat with wSlot = 1 to count(enemyData)
- if (enemyData[wSlot][1] = 0) and (validSlot = 0) then
- validSlot = wSlot
- end if
- end repeat
- if validSlot <> 0 then
- wSprite = enemySO + validSlot
- waitDelay = [100, random(200), 80, random(150), 50, random(100)][spawnType]
- enemyData[validSlot] = [1, spawnType, spawnloc, [spawnDrift], 0, 30 + random(180), 0, 0]
- set the member of sprite wSprite to ["Crab1", "Fish1", "Jellyfish1", "Starfish", "Anchor", "fishBone"][spawnType]
- sprite(wSprite).rotation = 0
- end if
- end
-
- on moveEnemies
- global totalEnemies, playerScore, animoffset, playerInvincible
- totalEnemies = 0
- animoffset = animoffset + 1
- if animoffset > 999 then
- animoffset = 0
- end if
- repeat with wEnemy = 1 to count(enemyData)
- wSprite = enemySO + wEnemy
- animValue = (animoffset + wEnemy) mod 10
- if enemyData[wEnemy][1] = 1 then
- if enemyData[wEnemy][5] > 0 then
- playerScore = playerScore + 25 + (enemyData[wEnemy][2] * 25)
- member("Score Display").text = string(playerScore)
- enemyData[wEnemy][3][2] = -250
- enemyData[wEnemy][1] = 0
- playSound("Hit Enemy", 2)
- else
- momentum = enemyData[wEnemy][4][1]
- bulletState = 0
- case enemyData[wEnemy][2] of
- 1:
- mSpeed = 20
- fSpeed = 12
- maxDepth = 3500
- minDepth = 2750
- totalEnemies = totalEnemies + 1
- monsterName = "Crab"
- 2:
- mSpeed = 15
- fSpeed = 15
- maxDepth = 3000
- minDepth = 500
- totalEnemies = totalEnemies + 1
- monsterName = "Fish"
- 3:
- mSpeed = 20
- fSpeed = 15
- maxDepth = 2600
- minDepth = 400
- totalEnemies = totalEnemies + 1
- monsterName = "jellyfish"
- 4:
- mSpeed = 20
- fSpeed = 15
- maxDepth = 3700
- minDepth = 0
- bulletState = 1
- monsterName = "Starfish"
- 5:
- mSpeed = 20
- fSpeed = 15
- maxDepth = 3700
- minDepth = 0
- bulletState = 1
- monsterName = "Anchor"
- 6:
- mSpeed = 20
- fSpeed = 15
- maxDepth = 3700
- minDepth = 0
- bulletState = 1
- monsterName = "Fishbone"
- end case
- if bulletState = 1 then
- if enemyData[wEnemy][3][2] > maxDepth then
- repeat with wEffect = 1 to 10
- addparticle(enemyData[wEnemy][3], 0, 3)
- end repeat
- enemyData[wEnemy][1] = 0
- set the loc of sprite wSprite to point(-50, -50)
- else
- enemyData[wEnemy][3] = enemyData[wEnemy][3] + momentum
- enemyData[wEnemy][7] = enemyData[wEnemy][7] + 5
- sprite(wSprite).rotation = enemyData[wEnemy][7]
- end if
- else
- if enemyData[wEnemy][6] > 0 then
- enemyData[wEnemy][6] = enemyData[wEnemy][6] - 1
- else
- enemyData[wEnemy][6] = 30 + random(100)
- mAim = 135 + random(90)
- locY = cos(mAim * PI / 180) * -60
- locX = sin(mAim * PI / 180) * 60
- addEnemy(enemyData[wEnemy][2] + 3, enemyData[wEnemy][3], point(locX, locY))
- enemyData[wEnemy][8] = 20
- memName = monsterName & " Shoot"
- set the member of sprite wSprite to memName
- playSound("Enemy Throw", 1)
- end if
- if enemyData[wEnemy][3][1] > 5400 then
- momentum[1] = momentum[1] - 1
- else
- if enemyData[wEnemy][3][1] < 400 then
- momentum[1] = momentum[1] + 1
- end if
- end if
- if enemyData[wEnemy][3][2] > maxDepth then
- momentum[2] = momentum[2] - 1
- else
- if enemyData[wEnemy][3][2] < minDepth then
- momentum[2] = momentum[2] + 1
- end if
- end if
- if momentum[1] > mSpeed then
- momentum[1] = mSpeed
- end if
- if momentum[1] < (0 - mSpeed) then
- momentum[1] = 0 - mSpeed
- end if
- if momentum[2] > fSpeed then
- momentum[2] = fSpeed
- end if
- if momentum[2] < (0 - fSpeed) then
- momentum[2] = 0 - fSpeed
- end if
- enemyData[wEnemy][3] = enemyData[wEnemy][3] + momentum
- enemyData[wEnemy][4][1] = momentum
- end if
- if enemyData[wEnemy][8] > 0 then
- enemyData[wEnemy][8] = enemyData[wEnemy][8] - 1
- if enemyData[wEnemy][8] = 0 then
- else
- end if
- else
- if bulletState = 0 then
- if animValue <= 5 then
- memName = monsterName & "1"
- else
- memName = monsterName & "2"
- end if
- else
- memName = monsterName
- end if
- set the member of sprite wSprite to memName
- end if
- set the loc of sprite wSprite to enemyData[wEnemy][3] / 10
- end if
- next repeat
- end if
- set the loc of sprite wSprite to point(-50, -50)
- end repeat
- end
-